package com.ruoyi.app.service;

import com.alibaba.fastjson2.JSONObject;
import com.ruoyi.app.domain.realtimepositioning.DeviceMileageParam;
import com.ruoyi.app.domain.realtimepositioning.QueryDeviceMileageParam;
import com.ruoyi.app.domain.realtimepositioning.QueryVehicleListParam;
import com.ruoyi.app.domain.realtimepositioning.VehicleVideoParam;
import com.ruoyi.common.core.domain.JSONObjectPro;
import com.ruoyi.common.core.page.AppPage;
import com.ruoyi.common.core.page.Page;
import com.ruoyi.system.domain.tree.AppCompanyTree;
import com.ruoyi.system.domain.vo.reportstatistics.MileageStatistics;
import org.springframework.validation.annotation.Validated;

import java.util.List;

/**
 * 描述
 * 作者 ZhangPing
 * 创建时间 2023/10/7 9:46
 */
public interface AppRealtimePositioningService {

    /**
     * 获取地图车辆集合
     * @return
     */
    public JSONObject queryGpsList();

    /**
     * 获取车辆实时定位信息
     * @return
     */
    public JSONObject queryGpsInfo(String dvo);

    /**
     * 车辆里程统计排行
     */
    public List<MileageStatistics> queryDeviceMileageRank();

    /**
     * 数据权限树
     */
    public List<AppCompanyTree> dataTree();

    /**
     * 车辆列表
     * @return
     */
    public JSONObject queryVehicleList(QueryVehicleListParam param);

    /**
     * 车辆里程统计
     */
    public List<JSONObjectPro> queryDeviceMileage(QueryDeviceMileageParam param);

    /**
     * 车辆历史轨迹
     */
    public List<JSONObjectPro> vehicleHisSegmentTracks(QueryDeviceMileageParam param);

    /**
     * 车辆历史轨迹详情
     */
    public List<JSONObjectPro> vehicleHisTracksDetail(QueryDeviceMileageParam param);

    /**
     * 车辆实时视频点播
     */
    public List<JSONObjectPro> vehicleVideos(VehicleVideoParam param);

    /**
     * 车辆里程统计列表
     */
    public AppPage<MileageStatistics> queryDeviceMileagePage(DeviceMileageParam param);

}
